1. Field of the Invention
The present invention relates to communication networks. More specifically, the present invention relates to an apparatus and a method for high-throughput asynchronous communication over high-latency communication channels.
2. Related Art
Dramatic increases in computational speed in recent years have largely been facilitated by improvements in semiconductor integration densities, which presently allow hundreds of millions of transistors to be integrated into a single semiconductor chip. This makes it possible to incorporate a large amount of computational circuitry onto a semiconductor chip. Moreover, the small circuit dimensions made possible by improved integration densities have enabled this computational circuitry to operate at greatly increased speeds. While computational circuitry is growing increasingly faster, the delay involved in transferring data between system components is becoming more of a bottleneck.
For example, FIG. 1 illustrates communication channels between a sender 102 and receiver 104. The forward latency between sender 102 and receiver 104, including the delay in the forward channel 108, is df and the reverse latency between sender 102 and receiver 104, including the delay in the reverse channel 106, is dr. The network behaves like a one-stage FIFO with a cycle time of dr+df. The problem with the network of FIG. 1 is that the throughput of this communication network is low, because the cycle time is the sum of the large forward and reverse latencies.
When sender 102 sends a data item to receiver 104 through forward channel 108, receiver 104 receives the data item at an elapsed time of df. After receiver 104 receives the data item, receiver 104 places an acknowledge token into reverse channel 106 to acknowledge receipt of the data item. At an elapsed time of dr, sender 102 receives the acknowledge token and is free to send another data item to receiver 104. If sender 102 attempts to send a second data item before receiving the acknowledge token, it is possible for the second data item to be lost, or to corrupt the first data item.
The cycle times df and dr can be reduced somewhat by moving the components closer together. However, even when the components are touching each other, the cycles times continue to be very large compared with the cycle times of the individual circuits within the components.
Hence, what is needed is an apparatus and a method for high-throughput asynchronous communication between a sender and a receiver without the problems described above.